package org.benjamin.lending.domain.transact;

import java.io.Serializable;

import org.benjamin.lending.domain.entity.BorrowInfo;
import org.benjamin.lending.domain.entity.MemberInfo;
import org.benjamin.lending.domain.entity.TransactRequest;
import org.springframework.cache.annotation.Cacheable;

public class BasicOutBean implements Serializable{
	
	private TransactBean transactBean;
	
	private BorrowInfo borrowInfo;
	
	private MemberInfo memberInfo;
	
	private boolean sync = false;
	
	private boolean mq = false;
	
	private String queueName = "realNameTransactRequest";
	
	private TransactRequest transactRequest = new TransactRequest();
	
	private Object resultData;
	
	private Object origParam;
	
	private String[] signatureNames;

	@Cacheable(cacheNames = "transactBean",key = "#id")
	public TransactBean getTransactBean() {
		return transactBean;
	}

	public void setTransactBean(TransactBean transactBean) {
		this.transactBean = transactBean;
	}

	public Object getResultData() {
		return resultData;
	}

	public void setResultData(Object resultData) {
		this.resultData = resultData;
	}

	public Object getOrigParam() {
		return origParam;
	}

	public void setOrigParam(Object origParam) {
		this.origParam = origParam;
	}

	public String[] getSignatureNames() {
		return signatureNames;
	}

	public void setSignatureNames(String[] signatureNames) {
		this.signatureNames = signatureNames;
	}

	public BorrowInfo getBorrowInfo() {
		return borrowInfo;
	}

	public void setBorrowInfo(BorrowInfo borrowInfo) {
		this.borrowInfo = borrowInfo;
	}

	public MemberInfo getMemberInfo() {
		return memberInfo;
	}

	public void setMemberInfo(MemberInfo memberInfo) {
		this.memberInfo = memberInfo;
	}

	public TransactRequest getTransactRequest() {
		return transactRequest;
	}

	public void setTransactRequest(TransactRequest transactRequest) {
		this.transactRequest = transactRequest;
	}

	public boolean isSync() {
		return sync;
	}

	/**
	 * 配置Sync为true，将同步发送参数，直接URL对接
	 * @param sync
	 */
	public void setSync(boolean sync) {
		this.sync = sync;
	}

	public boolean isMq() {
		return mq;
	}

	public void setMq(boolean mq) {
		this.mq = mq;
	}

	public String getQueueName() {
		return queueName;
	}

	public void setQueueName(String queueName) {
		this.queueName = queueName;
	}

}
